#ifndef OGuidesFromMeshModifier_H__
#define OGuidesFromMeshModifier_H__

enum
{
	// Dynamic attributes defined on enum class PlugId
	gfm_PLUGS = 1000,
	
	//////////////////////////////////////////////////////////////////////////
	// Object attributes -- DO NOT CHANGE, attribute keys on saved projects
	gfm_START = 2000,
	
	// Inputs
	gfm_InputMeshAttribute,
	gfm_InputFaceIndicesAttribute,	// not used
	
	// Guides Attributes
	gfm_OrnatrixVersionAttribute,
	gfm_RootGenerationMethodAttribute,
	gfm_GuideCountAttribute,
	gfm_GuidePointCountAttribute,
	gfm_GuideLengthAttribute,
	gfm_GuideLengthRandomnessAttribute,
	gfm_RandomSeedAttribute,
	gfm_TopologyBasedOrientationAttribute,
	
	// use face election
	gfm_UseSubSelectionAttribute,	// deprecated
	
	// use material
	gfm_MaterialIdAttribute,		// deprecated
	gfm_UseMaterialIdAttribute,		// deprecated
	
	// use face include
	gfm_UseFaceIncludeAttribute,
	
	// Distribution map
	gfm_DistributionChannelAttribute,
	gfm_DistributionMapAttribute,
	
	// Displacement map
	gfm_DisplacementMapChannelAttribute,
	gfm_DisplacementOffsetAttribute,
	gfm_DisplacementMapAttribute,
	
	// Cached root attributes:
	gfm_RememberRootPositionsAttribute,
	gfm_DetachAttribute,
	
	// Multiplier maps UVW tag selection #4211
	gfm_DistributionMapChannelAttribute,
	
	// #4233 Selection tag improvements
	gfm_RedistributeOnFaceSelectionAttribute,
	gfm_FaceIncludeSelectionTagAttribute,

	//////////////////////////////////////////////////////////////////////////
	// Arrays
	
	// Root positions
	gfm_CachedRootFacesAttribute_Array = 2200,
	gfm_CachedRootCoordinatesAttribute_Array,
	gfm_CachedRootRotationsAttribute_Array,
	gfm_CachedStrandIdsAttribute_Array,
	
	// Detached roots
	gfm_ObjectSpacePositionsAttribute_Array = 2210,
	gfm_ObjectSpaceRotationsAttribute_Array,
	
	//////////////////////////////////////////////////////////////////////////
	// Buttons
	
	gfm_Button_RootGenerationMethodAttribute_UNIFORM = 3000,
	gfm_Button_RootGenerationMethodAttribute_RANDOM_UV,
	gfm_Button_RootGenerationMethodAttribute_RANDOM_AREA,
	gfm_Button_RootGenerationMethodAttribute_RANDOM_FACE,
	gfm_Button_RootGenerationMethodAttribute_VERTEX,
	gfm_Button_RootGenerationMethodAttribute_GUIDE_AS_HAIR,
	gfm_Button_RootGenerationMethodAttribute_FACE_CENTER,
	gfm_Button_RootGenerationMethodAttribute_EVEN,
	
	// Labels
	
	gfm_RememberRootPositionsAttribute_Label,
	gfm_DetachAttribute_LabelOn,
	gfm_DetachAttribute_LabelOff,
	
	gfm_END
};

enum
{
	// Same order as RootGenerator::RootGenerationMethod
	gfm_RootGenerationMethodAttribute_UNIFORM,
	gfm_RootGenerationMethodAttribute_RANDOM_UV,
	gfm_RootGenerationMethodAttribute_RANDOM_AREA,
	gfm_RootGenerationMethodAttribute_RANDOM_FACE,
	gfm_RootGenerationMethodAttribute_VERTEX,
	gfm_RootGenerationMethodAttribute_GUIDE_AS_HAIR,	// unused
	gfm_RootGenerationMethodAttribute_FACE_CENTER,
	gfm_RootGenerationMethodAttribute_EVEN,
};

#endif
